package com.atguigu.spzx.manager.entity;

import java.math.BigDecimal;

import java.util.Date;

import com.atguigu.spzx.common.vo.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * <p>
 * 订单
 * </p>
 *
 * @author flyduck
 * @since 2023-11-03
 */
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel(value="OrderInfo对象", description="订单")
public class OrderInfo extends BaseEntity {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "会员_id")
    private Long userId;

    @ApiModelProperty(value = "昵称")
    private String nickName;

    @ApiModelProperty(value = "订单号")
    private String orderNo;

    @ApiModelProperty(value = "使用的优惠券")
    private Long couponId;

    @ApiModelProperty(value = "订单总额")
    private BigDecimal totalAmount;

    @ApiModelProperty(value = "优惠券")
    private BigDecimal couponAmount;

    @ApiModelProperty(value = "原价金额")
    private BigDecimal originalTotalAmount;

    @ApiModelProperty(value = "运费")
    private BigDecimal feightFee;

    @ApiModelProperty(value = "支付方式【1->微信 2->支付宝】")
    private Integer payType;

    @ApiModelProperty(value = "订单状态【0->待付款；1->待发货；2->已发货；3->待用户收货，已完成；-1->已取消】")
    private Integer orderStatus;

    @ApiModelProperty(value = "收货人姓名")
    private String receiverName;

    @ApiModelProperty(value = "收货人电话")
    private String receiverPhone;

    @ApiModelProperty(value = "收货人地址标签")
    private String receiverTagName;

    @ApiModelProperty(value = "省份/直辖市")
    private Long receiverProvince;

    @ApiModelProperty(value = "城市")
    private Long receiverCity;

    @ApiModelProperty(value = "区")
    private Long receiverDistrict;

    @ApiModelProperty(value = "详细地址")
    private String receiverAddress;

    @ApiModelProperty(value = "支付时间")
    private Date paymentTime;

    @ApiModelProperty(value = "发货时间")
    private Date deliveryTime;

    @ApiModelProperty(value = "确认收货时间")
    private Date receiveTime;

    @ApiModelProperty(value = "订单备注")
    private String remark;

    @ApiModelProperty(value = "取消订单时间")
    private Date cancelTime;

    @ApiModelProperty(value = "取消订单原因")
    private String cancelReason;

    @ApiModelProperty(value = "删除标记（0:不可用 1:可用）")
    private Integer isDeleted;


}
